import 'dart:async';
import 'dart:io';
import 'dart:isolate';

/// stream IO下的同步于异步
/// listen的实现思路是什么？
/// 既然涉及到IO，肯定有BIO  NIO
void main() async{
  print("main begin");

  StreamController controller = StreamController();

  //是不是要自己开死循环来监听！
  //但是我自己不想去做死循环
  //linux里面有方案  IO复用模型， select,epoll
  //fd stream
  // controller.stream.listen((event) {
  //   //NIO的体现
  //
  // });


  // //单一订阅模式下二次监听报错
  // controller.stream.listen((event) {
  //   print("接受到数据：$event");
  // });

  controller.sink.add("abc");
  controller.sink.add("123");


  //await - async  - read - fd   stream   BIO
  await for(var msg in controller.stream){
    print("await:$msg");
    controller.close();
  }

  print("main end");
}
